Demand-driven Pointer Analysis on Explicit Dependence Graphs
نویسندگان
چکیده
In this thesis I present a demand-driven pointer analysis for Java that aims at applications which require memory and time efficiency of the pointer analysis, such as tools for IDEs or JIT compilers. It furthermore allows clients to specify the precision needed and is context-sensitive and flow-sensitive. The demand-driven aspect of my approach allows the analysis to ignore irrelevant parts of the program. It is also client-driven via an iterative refinement method that allows the client to terminate the analysis early in case sufficient precision is achieved. The experimental evaluation of the approachhowever shows that the pointer analysis cannot be precise while terminating within a time budget. 66% of the analyzed queries exceeded even large budgets on average. I show that the flow-sensitive analysis of load statements requires too much computation without careful restriction of analyzed statements. Furthermore, I demonstrate that the refinement idea cannot be used easily in a flow-sensitive demand-driven pointer analysis.
منابع مشابه
Boomerang: Demand-Driven Flow- and Context-Sensitive Pointer Analysis for Java
Many current program analyses require highly precise pointer information about small, targeted parts of a given program. This motivates the need for demand-driven pointer analyses that compute information only where required. Pointer analyses generally compute points-to sets of program variables or answer boolean alias queries. However, many client analyses require richer pointer information. F...
متن کاملEfficient Pointer Analysis of Java in Logic
Points-to analysis for Java benefits greatly from context sensitivity. CFL-reachability and k-limited context strings are two approaches to obtaining context sensitivity with different advantages: CFL-reachability allows local reasoning about data value flow and thus is suitable for demand-driven analyses, whereas k-limited analyses allow object sensitivity which is a superior calling-context a...
متن کاملBoomerang: Demand-Driven Flow- and Context-Sensitive Pointer Analysis for Java (Artifact)
Evaluating pointer analyses with respect to soundness and precision has been a tedious task. Within this artifact we present PointerBench, the benchmark suite used in the paper to compare the pointer analysis Boomerang with two other demand-driven pointer analyses, SB [2] and DA [3]. We show PointerBench can be used to test different pointer analyses. In addition to that, the artifact contains ...
متن کاملCommutativity Analysis: A Technique for Automatically Parallelizing Pointer-Based Computations
This paper introduces an analysis technique, commutativity analysis, for automatically parallelizing computations that manipulate dynamic, pointer-based data structures. Commutativity analysis views computations as composed of operations on objects. It then analyzes the program to discover when operations commute, i.e. leave the objects in the same state regardless of the order in which they ex...
متن کاملPrecise Scalable Static Analysis for Application-Specific Security Guarantees
This dissertation presents Pidgin, a static program analysis and understanding tool that enables the specification and enforcement of precise application-specific information security guarantees. Pidgin also allows developers to interactively explore the information flows in their applications to develop policies and investigate counter-examples. Pidgin combines program dependence graphs (PDGs)...
متن کامل